// var data = [];
// for (var i = 0; i < 3; i++) {
//     data[i] = function () {
//         console.log(i);
//     };
// }
// data[0]();
// data[1]();
// data[2]();
// 报错// 报错2
// 正确结果 3 3 3
// 暂存了函数 当执行时 获取i i 在全局 已经变为3 so



// var data = [];
// for (var i = 0; i < 3; i++) {
//     data[i] = (function (i) {
//         return function () {
//             console.log(i);
//         }
//     })(i);
// }
// data[0]();
// data[1]();
// data[2]();
// // 0 1 2



//修改输入0-9
// for (var i = 0; i < 10; i++) {
//     setTimeout(() => {
//         console.log(i);  // 10
//     }, 1000)
// }
// // 方式1
// for (let i = 0; i < 10; i++) {
//     setTimeout(() => {
//         console.log(i);
//     }, 1000)
// }
// // 方式2
// for (let i = 0; i < 10; i++) {
//     (() => {
//         setTimeout(() => {
//             console.log(i);
//         }, 1000)
//     })(i)
// }



// 2. let var const
// 1、只能修改 setTimeout 到 Math.floor(Math.random() * 1000 的代码
// 2、不能修改 Math.floor(Math.random() * 1000
// 3、不能使用全局变量
function print(n) {
    setTimeout(() => {
        console.log(n);
    }, Math.floor(Math.random() * 1000));
}
for (var i = 0; i < 10; i++) {
    print(i);
}
// 方式
